********************************************************************************
********* Ideological Asymmetries of Trust in Elections and Non-Voting *********
*************************** Political Participation ****************************
********************************************************************************

// Corresponds with the manuscript accepted for publication in Party Politics, 2026

// Authors: Erin B. Fitz and Kyle L. Saunders

********************************************************************************
************************************* Notes ************************************
********************************************************************************

// To replicate the present study (Fitz and Saunders 2026), download data and do files titled "Fitz and Saunders 2026". The data file merges together the 2020 and 2024 ANES Time Series studies and includes only those variables used in this analysis. Complete versions of these data are located at https://electionstudies.org/data-center/.

// Data for our previous study (Fitz and Saunders 2024), the main results for which we provide in Appendix A, can be downloaded from the Harvard Dataverse: https://doi.org/10.7910/DVN/BVIMHX. These files correspond with the paper, "Distrusting the Process: Electoral Trust, Operational Ideology, and Non-Voting Political Participation in the 2020 American Electorate," published in: Public Opinion Quarterly 88(SI), 2024, pages 843 – 857, https:doi.org/10.1093/poq/nfae025. 

// All variable transformations are toggled out and included below.

// To create summated scale/indexed variables, please download the following module:
// ssc install sumscale

// Replication code for our results begins on line 1371.

********************************************************************************
************************ Variable Transformations: 2024 ************************
********************************************************************************

// // Sex
// gen sex24 = V241550
// replace sex24 = . if V241550 == -9
// replace sex24 = . if V241550 == -4
// replace sex24 = 0 if V241550 == 1
// replace sex24 = 1 if V241550 == 2
// label var sex24 "Female"
// label define sex24 0 "Male" 1 "Female"
// label values sex24 sex24
// recast double sex24
//
// // Age
// gen age24x = V241458x
// replace age24x = . if V241458x == -2
// label var age24x "Age"
// label values age24x age24x
// recast double age24x
//
// gen age2401 = (age24x-18)/62
// label var age2401 "Age"
// recast double age2401
//
// // Education
// gen education24x = V241465x
// replace education24x = . if V241465x == -9
// replace education24x = . if V241465x == -8
// replace education24x = . if V241465x == -4
// replace education24x = . if V241465x == -2
// label var education24x "Education"
// label define education24x 1 "Less than high school" 2 "High school" 3 "Some college" 4 "Bachelor's degree" 5 "Graduate degree"
// label values education24x education24x
// recast double education24x
//
// gen education2401 = (education24x-1)/4
// label var education2401 "Education"
// recast double education2401
//
// // Religiosity: reverse coded
// gen religious24x = V241420
// replace religious24x = . if V241420 == -9
// replace religious24x = . if V241420 == -8
// replace religious24x = . if V241420 == -1
// recode religious24x (1=5) (2=4) (4=2) (5=1)
// label var religious24x "Religiosity"
// label define religious24x 1 "Not important at all" 2 "A little important" 3 "Moderately important" 4 "Very important" 5 "Extremely important"
// label values religious24x religious24x
// recast double religious24x
//
// gen religious2401 = (religious24x-1)/4
// label var religious2401 "Religiosity"
// recast double religious2401 
//
// // Race: White, non-Hispanic
// gen race2401 = .
// replace race2401 = 1 if V241501x == 1
// replace race2401 = 0 if V241501x == 2
// replace race2401 = 0 if V241501x == 3
// replace race2401 = 0 if V241501x == 4
// replace race2401 = 0 if V241501x == 5
// replace race2401 = 0 if V241501x == 6
// label var race2401 "White"
// label define race2401 0 "Non-white" 1 "White"
// label values race2401 race2401
// recast double race2401
//
// // Ethnicity: Hispanic
// gen ethnicity2401 = .
// replace ethnicity2401 = . if V241499 == -9
// replace ethnicity2401 = . if V241499 == -4
// replace ethnicity2401 = 0 if V241499 == 2
// replace ethnicity2401 = 1 if V241499 == 1
// label var ethnicity2401 "Hispanic"
// label define ethnicity2401 0 "Non-Hispanic" 1 "Hispanic"
// label values ethnicity2401 ethnicity2401
// recast double ethnicity2401
//
// // Income
// gen income24x = V241567x
// replace income24x = . if V241567x == -9
// replace income24x = . if V241567x == -5
// replace income24x = . if V241567x == -4
// label var income24x "Income"
// label define income24x 1 "<$9,999" 2 "$10,000-$29,999" 3 "$30,000-$59,999" 4 "$60,000-$99,999" 5  "$100,000-$249,999" 6 "$250,000 or more"
// label values income24x income24x
// recast double income24x
//
// gen income2401 = (income24x-1)/5
// label var income2401 "Income"
// recast double income2401
//
// // Symbolic Ideology (7 pt. scale): "99. Haven't thought much about this" coded as 4
// gen ideology24x = V241177
// replace ideology24x = . if V241177 == -9
// replace ideology24x = . if V241177 == -4
// replace ideology24x = 4 if V241177 == 99
// label var ideology24x "Ideology"
// label define ideology24x 1 "Extremely liberal" 2 "Liberal" 3 "Slightly liberal" 4 "Moderate" 5 "Slightly conservative" 6 "Conservative" 7 "Extremely conservative"
// label values ideology24x ideology24x
// recast double ideology24x
//
// gen ideology2401 = (ideology24x-1)/6
// label var ideology2401 "Ideology"
// recast double ideology2401
//
// // Ideological strength: "99. Haven't thought much about this" coded as 1
// gen ideostrength24x = ideology24x
// replace ideostrength24x = 4 if ideology24x == 1
// replace ideostrength24x = 3 if ideology24x == 2
// replace ideostrength24x = 2 if ideology24x == 3
// replace ideostrength24x = 1 if ideology24x == 4
// replace ideostrength24x = 2 if ideology24x == 5
// replace ideostrength24x = 3 if ideology24x == 6
// replace ideostrength24x = 4 if ideology24x == 7
// label var ideostrength24x "Ideological Strength"
// label define ideostrength24x 1 "1 Moderate" 2 "2 Slightly liberal/conservative" 3 "3 Liberal/conservative" 4 "4 Extremely liberal/conservative" 
// label values ideostrength24x ideostrength24x
// recast double ideostrength24x
//
// gen ideostrength2401 = (ideostrength24x-1)/3
// label var ideostrength2401 "Ideological Strength"
// recast double ideostrength2401
//
// // Party ID (7 pt. scale) 
// gen pid724x = V241227x
// replace pid724x = . if V241227x == -9
// replace pid724x = . if V241227x == -8
// replace pid724x = . if V241227x == -4
// label var pid724x "Party ID"
// label define pid724x 1 "Strong Democrat" 2 "Not very strong Democrat" 3 "Lean Democrat" 4 "Independent" 5 "Lean Republican" 6 "Not very strong Republican" 7 "Strong Republican"
// label values pid724x pid724x
// recast double pid724x
//
// gen pid72401 = (pid724x-1)/6
// label var pid72401 "Party ID"
// recast double pid72401
//
// // Party ID Strength
// gen pidstrength24x = pid724x
// replace pidstrength24x = 4 if pid724x == 1
// replace pidstrength24x = 3 if pid724x == 2
// replace pidstrength24x = 2 if pid724x == 3
// replace pidstrength24x = 1 if pid724x == 4
// replace pidstrength24x = 2 if pid724x == 5
// replace pidstrength24x = 3 if pid724x == 6
// replace pidstrength24x = 4 if pid724x == 7
// label var pidstrength24x "Party ID Strength"
// label define pidstrength24x 1 "Independent" 2 "Lean" 3 "Not very strong" 4 "Strong"
// label values pidstrength24x pidstrength24x
// recast double pidstrength24x
//
// gen pidstrength2401 = (pidstrength24x-1)/3
// label var pidstrength2401 "Party ID Strength"
// recast double pidstrength2401
//
// // NVP: Attend Online
// gen onlineattend24 = V242011
// replace onlineattend24 = . if V242011 == -9
// replace onlineattend24 = . if V242011 == -7
// replace onlineattend24 = . if V242011 == -6
// replace onlineattend24 = . if V242011 == -1
// recode onlineattend24 (2=0)
// label var onlineattend24 "Online Attend"
// label define onlineattend24 0 "No" 1 "Yes"
// label values onlineattend24 onlineattend24
// recast double onlineattend24
//
// // NVP: Attend
// gen attend24 = V242012
// replace attend24 = . if V242012 == -9
// replace attend24 = . if V242012 == -7
// replace attend24 = . if V242012 == -6
// replace attend24 = . if V242012 == -1
// recode attend24 (2=0)
// label var attend24 "Attend"
// label define attend24 0 "No" 1 "Yes"
// label values attend24 attend24
// recast double attend24
//
// // NVP: Wear
// gen wear24 = V242013
// replace wear24 = . if V242013 == -9
// replace wear24 = . if V242013 == -7
// replace wear24 = . if V242013 == -6
// replace wear24 = . if V242013 == -1
// recode wear24 (2=0)
// label var wear24 "Wear"
// label define wear24 0 "No" 1 "Yes"
// label values wear24 wear24
// recast double wear24
//
// // NVP: Work
// gen work24 = V242014
// replace work24 = . if V242014 == -9
// replace work24 = . if V242014 == -7
// replace work24 = . if V242014 == -6
// replace work24 = . if V242014 == -1
// recode work24 (2=0)
// label var work24 "Work"
// label define work24 0 "No" 1 "Yes"
// label values work24 work24
// recast double work24
//
// // NVP: Donate to Candidate
// gen moneycand24 = V242015
// replace moneycand24 = . if V242015 == -9
// replace moneycand24 = . if V242015 == -8
// replace moneycand24 = . if V242015 == -7
// replace moneycand24 = . if V242015 == -6
// replace moneycand24 = . if V242015 == -1
// recode moneycand24 (3=0)
// recode moneycand24 (2=1)
// label var moneycand24 "Donate to Candidate"
// label define moneycand24 0 "No" 1 "Yes"
// label values moneycand24 moneycand24
// recast double moneycand24
//
// // NVP: Donate to Party
// gen moneyparty24 = V242020
// replace moneyparty24 = . if V242020 == -9
// replace moneyparty24 = . if V242020 == -8
// replace moneyparty24 = . if V242020 == -7
// replace moneyparty24 = . if V242020 == -6
// replace moneyparty24 = . if V242020 == -1
// recode moneyparty24 (2=0)
// label var moneyparty24 "Donate to Party"
// label define moneyparty24 0 "No" 1 "Yes"
// label values moneyparty24 moneyparty24
// recast double moneyparty24
//
// // NVP: Donate to Group
// gen moneyoth24 = V242024
// replace moneyoth24 = . if V242024 == -9
// replace moneyoth24 = . if V242024 == -8
// replace moneyoth24 = . if V242024 == -7
// replace moneyoth24 = . if V242024 == -6
// replace moneyoth24 = . if V242024 == -1
// recode moneyoth24 (2=0)
// label var moneyoth24 "Donate to Group"
// label define moneyoth24 0 "No" 1 "Yes"
// label values moneyoth24 moneyoth24
// recast double moneyoth24
//
// // NVP: Protest
// gen protest24 = V242029
// replace protest24 = . if V242029 == -9
// replace protest24 = . if V242029 == -7
// replace protest24 = . if V242029 == -6
// replace protest24 = . if V242029 == -1
// recode protest24 (2=0)
// label var protest24 "Protest"
// label define protest24 0 "No" 1 "Yes"
// label values protest24 protest24
// recast double protest24
//
// // NVP: Petition
// gen petition24 = V242030
// replace petition24 = . if V242030 == -9
// replace petition24 = . if V242030 == -8
// replace petition24 = . if V242030 == -7
// replace petition24 = . if V242030 == -6
// replace petition24 = . if V242030 == -1
// recode petition24 (2=0)
// label var petition24 "Petition"
// label define petition24 0 "No" 1 "Yes"
// label values petition24 petition24
// recast double petition24
//
// // NVP: Comment
// gen comment24 = V242032
// replace comment24 = . if V242032 == -9
// replace comment24 = . if V242032 == -8
// replace comment24 = . if V242032 == -7
// replace comment24 = . if V242032 == -6
// replace comment24 = . if V242032 == -5
// replace comment24 = . if V242032 == -1
// recode comment24 (2=0)
// label var comment24 "Online Comment"
// label define comment24 0 "No" 1 "Yes"
// label values comment24 comment24
// recast double comment24
//
// //NVP: Contact
// gen contact24 = V242036
// replace contact24 = . if V242036 == -9
// replace contact24 = . if V242036 == -7
// replace contact24 = . if V242036 == -6
// replace contact24 = . if V242036 == -5
// replace contact24 = . if V242036 == -1
// recode contact24 (2=0)
// label var contact24 "Contact"
// label define contact24 0 "No" 1 "Yes"
// label values contact24 contact24
// recast double contact24
//
// // NVP: Talk
// gen talk24 = V242010
// replace talk24 = . if V242010 == -9
// replace talk24 = . if V242010 == -8
// replace talk24 = . if V242010 == -7
// replace talk24 = . if V242010 == -6
// replace talk24 = . if V242010 == -1
// recode talk24 (2=0)
// label var talk24 "Talk"
// label define talk24 0 "No" 1 "Yes"
// label values talk24 talk24
// recast double talk24
//
// // NVP index 
// sumscale, f1(onlineattend24 attend24 wear24 work24 moneycand24 moneyparty24 moneyoth24 protest24 petition24 comment24 contact24 talk24) fdummy
// rename Factor1_dsum nvp1224x
// label var nvp1224x "NVP (12)" 
// recast double nvp1224x
//
// gen nvp122401 = (nvp1224x)/12
// label var nvp122401 "NVP (12)"
// recast double nvp122401
//
// // Any NVP 
// gen anynvp1224 = . 
// replace anynvp1224 = 0 if nvp1224x == 0
// replace anynvp1224 = 1 if nvp1224x == 1 
// replace anynvp1224 = 1 if nvp1224x == 2
// replace anynvp1224 = 1 if nvp1224x == 3
// replace anynvp1224 = 1 if nvp1224x == 4
// replace anynvp1224 = 1 if nvp1224x == 5
// replace anynvp1224 = 1 if nvp1224x == 6
// replace anynvp1224 = 1 if nvp1224x == 7
// replace anynvp1224 = 1 if nvp1224x == 8
// replace anynvp1224 = 1 if nvp1224x == 9
// replace anynvp1224 = 1 if nvp1224x == 10
// replace anynvp1224 = 1 if nvp1224x == 11
// replace anynvp1224 = 1 if nvp1224x == 12
// label var anynvp1224 "Any NVP (12)"
// recast double anynvp1224 
//
// // Recruitment: Party contact (combines responses to split sample questions V242004 and and V242005)
// gen partycontact24 = .
// replace partycontact24 = . if V242004 == -9
// replace partycontact24 = . if V242004 == -8
// replace partycontact24 = . if V242004 == -7
// replace partycontact24 = . if V242004 == -6
// replace partycontact24 = . if V242004 == -1
// replace partycontact24 = 0 if V242004 == 2
// replace partycontact24 = 1 if V242004 == 1
// label var partycontact24 "Party Contact"
// label define partycontact24 0 "No" 1 "Yes"
// label values partycontact24 partycontact24
// recast double partycontact24
//
// // Recruitment: Support
// gen support24 = V242008
// replace support24 = . if V242008 == -9
// replace support24 = . if V242008 == -7
// replace support24 = . if V242008 == -6
// replace support24 = . if V242008 == -1
// recode support24 (2=0)
// label var support24 "Other Contact"
// label define support24 0 "No" 1 "Yes"
// label values support24 support24
// recast double support24
//
// // Recruitment: Register
// gen register24 = V242009
// replace register24 = . if V242009 == -9
// replace register24 = . if V242009 == -8
// replace register24 = . if V242009 == -7
// replace register24 = . if V242009 == -6
// replace register24 = . if V242009 == -1
// recode register24 (2=0)
// label var register24 "Talk About Registering/Voting"
// label define register24 0 "No" 1 "Yes"
// label values register24 register24
// recast double register24
//
// // Recruitment 
// sumscale, f1(partycontact24 support24 register24) fdummy
// rename Factor1_dsum recruit24x
// label var recruit24x "Recruited"
// recast double recruit24x
//
// gen recruit2401 = (recruit24x)/3
// label var recruit2401 "Recruited"
// recast double recruit2401 
//
// // Finances
// gen finances24x = V241452
// replace finances24x = . if V241452 == -9
// replace finances24x = . if V241452 == -8
// replace finances24x = . if V241452 == -1
// label var finances24x "Finances"
// label define finances24x 1 "Much better off" 2 "Somewhat better off" 3 "About the same" 4 "Somewhat worse off" 5 "Much worse off"
// label values finances24x finances24x
// recast double finances24x
//
// gen finances2401 = (finances24x-1)/4
// label var finances2401 "Finances"
// recast double finances2401
//
// // Issues: Government Assistance
// gen govassist24x = V241255
// replace govassist24x = . if V241255 == -9
// replace govassist24x = . if V241255 == -8
// replace govassist24x = . if V241255 == -4
// replace govassist24x = 4 if V241255 == 99
// label var govassist24x "7pt scale gov assistance to blacks scale: self-placement"
// label define govassist24x 1 "Government should help blacks" 7 "Blacks should help themselves"
// label values govassist24x govassist24x
// recast double govassist24x
//
// gen govassist2401 = (govassist24x-1)/6
// label var govassist2401 "7pt scale gov assistance to blacks scale: self-placement"
// recast double govassist2401
//
// // Issues: Gov/Private Medical
// gen privatemed24x = V241245
// replace privatemed24x = . if V241245 == -9
// replace privatemed24x = . if V241245 == -8
// replace privatemed24x = . if V241245 == -1
// replace privatemed24x = 4 if V241245 == 99
// label var privatemed24x "7pt scale gov-private medical insurance scale: self-placement"
// label define privatemed24x 1 "Government insurance plan" 7 "Private insurance plan"
// label values privatemed24x privatemed24x
// recast double privatemed24x
//
// gen privatemed2401 = (privatemed24x-1)/6
// label var privatemed2401 ///
// "7pt scale gov-private medical insurance scale: self-placement"
// recast double privatemed2401
//
// // Issues: Job-Income
// gen jobincome24x = V241252
// replace jobincome24x = . if V241252 == -9
// replace jobincome24x = . if V241252 == -8
// replace jobincome24x = . if V241252 == -1
// replace jobincome24x = 4 if V241252 == 99
// label var jobincome24x "7pt scale guaranteed job-income scale: self-placement"
// label define jobincome24x 1 "Government should see to jobs and standards of living" 7 "Government should let each person get ahead on their own"
// label values jobincome24x jobincome24x
// recast double jobincome24x
//
// gen jobincome2401 = (jobincome24x-1)/6
// label var jobincome2401 "7pt scale guaranteed job-income scale: self-placement"
// recast double jobincome2401
//
// // Issues: Services: reverse coded 
// gen services24x = V241239
// replace services24x = . if V241239 == -9
// replace services24x = . if V241239 == -8
// replace services24x = . if V241239 == -4
// replace services24x = 4 if V241239 == 99
// recode services24x (1=7) (2=6) (3=5) (4=4) (5=3) (6=2) (7=1)
// label var services24x "7pt scale spending & services: self-placement"
// label define services24x 1 "Government should provide many more services" 7 "Government should provide many fewer services"
// label values services24x services24x
// recast double services24x
//
// gen services2401 = (services24x-1)/6
// label var services2401 ///
// "7pt scale spending & services: self-placement"
// recast double services2401
//
// // Issues: Tradeoff 
// gen tradeoff24x = V241258
// replace tradeoff24x = . if V241258 == -9
// replace tradeoff24x = . if V241258 == -8
// replace tradeoff24x = . if V241258 == -1
// replace tradeoff24x = 4 if V241258 == 99
// label var tradeoff24x "7pt scale environment-business tradeoff"
// label define tradeoff24x 1 "Tougher regulations on business needed to protect environment" 7 "Regulations to protect environment already too much of a burden on business"
// label values tradeoff24x tradeoff24x
// recast double tradeoff24x
//
// gen tradeoff2401 = (tradeoff24x-1)/6
// label var tradeoff2401 "7pt scale environment-business tradeoff"
// recast double tradeoff2401
//
// // Issues: Wall: Reverse coded
// gen wall24x = V241395x
// replace wall24x = . if V241395x == -2
// replace wall24x = . if V241395x == -1
// recode wall24x (1=7) (2=6) (3=5) (4=4) (5=3) (6=2) (7=1)
// label var wall24x "Favor or oppose building a wall on border with Mexico"
// label define wall24x 1 "Oppose a great deal" 2 "Oppose a moderate amount" 3 "Oppose a little" 4 "Neither favor nor oppose" 5 "Favor a little" 6 "Favor a moderate amount" 7 "Favor a great deal"
// label values wall24x wall24x
// recast double wall24x
//
// gen wall2401 = (wall24x-1)/6
// label var wall2401 "Favor or oppose building a wall on border with Mexico"
// recast double wall2401
//
// // Issues: Defense
// gen defense24x = V241242
// replace defense24x = . if V241242 == -9
// replace defense24x = . if V241242 == -8
// replace defense24x = . if V241242 == -1
// replace defense24x = 4 if V241242 == 99
// label var defense24x "7pt scale defense spending: self-placement"
// label define defense24x 1 "Greatly decrease defense spending" 7 "Greatly increase defense spending"
// label values defense24x defense24x 
// recast double defense24x 
//
// gen defense2401 = (defense24x-1)/6
// label var defense2401 "7pt scale defense spending: self-placement"
// recast double defense2401
//
// // Issues Scale
// sumscale, f1(govassist24x privatemed24x jobincome24x services24x tradeoff24x wall24x defense24x)
// rename Factor1_average issues24x
// label var issues24x "Issues"
// recast double issues24x
//
// // Issues Scale
// sumscale, f1(govassist2401 privatemed2401 jobincome2401 services2401 tradeoff2401 wall2401 defense2401)
// rename Factor1_average issues2401
// label var issues2401 "Issues"
// recast double issues2401
//
// // Issues: Binned
// egen issues24cat=cut(issues2401), group(3) 
// label define issues24cat 0 "Liberal" 1 "Moderate" 2 "Conservative"
// label values issues24cat issues24cat
// recast double issues24cat
//
// // Trust government (reverse coded)
// gen trustgovt24x = V241229
// replace trustgovt24x = . if V241229 == -1
// recode trustgovt24x (1=5) (2=4) (3=3) (4=2) (5=1)
// label var trustgovt24x "Trust Government"
// label define trustgovt24x 1 "Never" 2 "Some of the time" 3 "About half the time" 4 "Most of the time" 5 "Always"
// label values trustgovt24x trustgovt24x
// recast double trustgovt24x
//
// gen trustgovt2401 = (trustgovt24x-1)/4
// label var trustgovt2401 "Trust Government"
// recast double trustgovt2401
//
// // Trust people: reverse coded
// gen trustpeople24x = V241234
// replace trustpeople24x = . if V241234 == -9
// replace trustpeople24x = . if V241234 == -1
// recode trustpeople24x (1=5) (2=4) (3=3) (4=2) (5=1)
// label var trustpeople24x "Trust People"
// label define trustpeople24x 1 "Never" 2 "Some of the time" 3 "About half the time" 4 "Most of the time" 5 "Always"
// label values trustpeople24x trustpeople24x
// recast double trustpeople24x
//
// gen trustpeople2401 = (trustpeople24x-1)/4
// label var trustpeople2401 "Trust People"
// recast double trustpeople2401
//
// // Trust election officials: reverse coded
// gen trustofficials24x = V241315
// replace trustofficials24x = . if V241315 == -9
// replace trustofficials24x = . if V241315 == -8
// replace trustofficials24x = . if V241315 == -1
// label var trustofficials24x "Trust Election Officials"
// label define trustofficials24x 1 "Never" 2 "Some of the time" 3 "About half the time" 4 "Most of the time" 5 "Always"
// label values trustofficials24x trustofficials24x
// recast double trustofficials24x
//
// gen trustofficials2401 = (trustofficials24x-1)/4
// label var trustofficials2401 "Trust Election Officials"
// recast double trustofficials2401
//
// // Votes counted accurately
// gen votecount24x = V241314
// replace votecount24x = . if V241314 == -9
// replace votecount24x = . if V241314 == -8
// label var votecount24x "Votes counted accurately"
// label define votecount24x 1 "Not at all" 2 "A little" 3 "Moderately" 4 "Very" 5 "Completely"
// label values votecount24x votecount24x
// recast double votecount24x
//
// gen votecount2401 = (votecount24x-1)/4
// label var votecount2401 "Votes counted accurately"
// recast double votecount2401
//
// // Trust in elections
// sumscale, f1(trustofficials24x votecount24x)
// rename Factor1_average electtrust24x
// label var electtrust24x "Election Trust"
// recast double electtrust24x 
//
// sumscale, f1(trustofficials2401 votecount2401)
// rename Factor1_average electtrust2401
// label var electtrust2401 "Election Trust"
// recast double electtrust2401 
//
// // Interest: Reverse coded
// gen interest24x = V241005
// replace interest24x = . if V241005 == -9
// replace interest24x = . if V241005 == -1
// recode interest24x (1=3) (3=1) 
// label var interest24x "Interest" 
// label define interest24x 1 "Not much interested" 2 "Somewhat interested" 3 "Very much interested" 
// label values interest24x interest24x
// recast double interest24x
//
// gen interest2401 = (interest24x-1)/2
// label var interest2401 "Interest"
// recast double interest2401
//
// // Efficacy: Officials (reverse coded)
// gen officials24x = V242200 
// replace officials24x = . if V242200 == -9
// replace officials24x = . if V242200 == -8
// replace officials24x = . if V242200 == -7
// replace officials24x = . if V242200 == -6
// replace officials24x = . if V242200 == -5
// replace officials24x = . if V242200 == -4
// replace officials24x = . if V242200 == -1
// recode officials24x (1=5) (2=4) (4=2) (5=1)
// label var officials24x "Public officials don't care what people think"
// label define officialsx 1 "Disagree strongly" 2 "Disagree somewhat" 3 "Neither agree nor disagree" 4 "Agree somewhat" 5 "Agree strongly"
// label values officials24x officials24x
// recast double officials24x
//
// gen officials2401 = (officials24x-1)/4
// label var officials2401 "Public officials don't care what people think"
// recast double officials2401 
//
// // Efficacy: No say (reverse coded)
// gen nosay24x = V242201
// replace nosay24x = . if V242201 == -9
// replace nosay24x = . if V242201 == -8
// replace nosay24x = . if V242201 == -7
// replace nosay24x = . if V242201 == -6
// replace nosay24x = . if V242201 == -5
// replace nosay24x = . if V242201 == -4
// replace nosay24x = . if V242201 == -1
// recode nosay24x (1=5) (2=4) (4=2) (5=1)
// label var nosay24x "Have no say about what government does"
// label define nosay24x 1 "Disagree strongly" 2 "Disagree somewhat" 3 "Neither agree nor disagree" 4 "Agree somewhat" 5 "Agree strongly"
// label values nosay24x nosay24x
// recast double nosay24x
//
// gen nosay2401 = (nosay24x-1)/4
// label var nosay2401 "Have no say about what government does"
// recast double nosay2401 
//
// // Efficacy
// sumscale, f1(officials2401 nosay2401)
// rename Factor1_average efficacy2401
// label var efficacy2401 "Efficacy"
// recast double efficacy2401
//
// // Anger
// gen anger24x = V241121
// replace anger24x = . if V241121 == -9
// replace anger24x = . if V241121 == -8
// replace anger24x = . if V241121 == -1
// label var anger24x "Angry"
// label define anger24x 1 "Not at all" 2 "A little" 3 "Somewhat" 4 "Very" 5 "Extremely"
// label values anger24x anger24x
// recast double anger24x
//
// gen anger2401 = (anger24x-1)/4
// label var anger2401 "Angry"
// recast double anger2401
//
// // Trump feeling thermometer
// gen trumptherm24x = V241157
// replace trumptherm24x = . if V241157 == -9
// replace trumptherm24x = . if V241157 == -8
// replace trumptherm24x = . if V241157 == -1
// label var trumptherm24x "Trump Therm"
// recast double trumptherm24x 
//
// gen trumptherm2401 = (trumptherm24x)/100
// label var trumptherm2401 "Trump Therm"
// recast double trumptherm2401 

********************************************************************************
************************ Variable Transformations: 2020 ************************
********************************************************************************

// // Sex
// gen sex20 = V201600
// replace sex20 = . if V201600 == -9
// replace sex20 = 0 if V201600 == 1
// replace sex20 = 1 if V201600 == 2
// label var sex20 "Female"
// label define sex20 0 "Male" 1 "Female"
// label values sex20 sex20
// recast double sex20
//
// // Age
// gen age20x = V201507x
// replace age20x = . if V201507x == -9
// label var age20x "Age"
// label values age20x age20x
// recast double age20x
//
// gen age2001 = (age20x-18)/62
// label var age2001 "Age"
// recast double age2001
//
// // Education
// gen education20x = V201511x
// replace education20x = . if V201511x == -9
// replace education20x = . if V201511x == -8
// replace education20x = . if V201511x == -2
// label var education20x "Education"
// label define education20x 1 "Less than high school" 2 "High school" 3 "Some college" 4 "Bachelor's degree" 5 "Graduate degree"
// label values education20x education20x
// recast double education20x
//
// gen education2001 = (education20x-1)/4
// label var education2001 "Education"
// recast double education2001
//
// // Religiosity: Reverse coded from ANES 
// gen religious20x = V201433
// replace religious20x = . if V201433 == -9
// replace religious20x = . if V201433 == -8
// replace religious20x = 1 if V201433 == 5
// replace religious20x = 2 if V201433 == 4
// replace religious20x = 4 if V201433 == 2
// replace religious20x = 5 if V201433 == 1
// label var religious20x "Religiosity"
// label define religious20x 1 "Not important at all" 2 "A little important" 3 "Moderately important" 4 "Very important" 5 "Extremely important"
// label values religious20x religious20x
// recast double religious20x
//
// gen religious2001 = (religious20x-1)/4
// label var religious2001 "Religiosity"
// recast double religious2001 
//
// // Race: White, non-Hispanic
// gen race2001 = .
// replace race2001 = 1 if V201549x == 1
// replace race2001 = 0 if V201549x == 2
// replace race2001 = 0 if V201549x == 3
// replace race2001 = 0 if V201549x == 4
// replace race2001 = 0 if V201549x == 5
// replace race2001 = 0 if V201549x == 6
// label var race2001 "White"
// label define race2001 0 "Non-white" 1 "White"
// label values race2001 race2001
// recast double race2001
//
// // Ethnicity: Hispanic
// gen ethnicity2001 = .
// replace ethnicity2001 = 1 if V201549x == 3
// replace ethnicity2001 = 0 if V201549x == 1
// replace ethnicity2001 = 0 if V201549x == 2
// replace ethnicity2001 = 0 if V201549x == 4
// replace ethnicity2001 = 0 if V201549x == 5
// replace ethnicity2001 = 0 if V201549x == 6
// label var ethnicity2001 "Hispanic"
// label define ethnicity2001 0 "Non-Hispanic" 1 "Hispanic"
// label values ethnicity2001 ethnicity2001
// recast double ethnicity2001
//
// // Income: 6 category (based on pre summary and to match 2020)
// gen income20x = .
// replace income20x = . if V201617x == -9
// replace income20x = . if V201617x == -5
// replace income20x = 1 if V201617x == 1
// replace income20x = 2 if V201617x == 2
// replace income20x = 2 if V201617x == 3
// replace income20x = 2 if V201617x == 4
// replace income20x = 2 if V201617x == 5
// replace income20x = 3 if V201617x == 6
// replace income20x = 3 if V201617x == 7
// replace income20x = 3 if V201617x == 8
// replace income20x = 3 if V201617x == 9
// replace income20x = 3 if V201617x == 10
// replace income20x = 4 if V201617x == 11
// replace income20x = 4 if V201617x == 12
// replace income20x = 4 if V201617x == 13
// replace income20x = 4 if V201617x == 14
// replace income20x = 4 if V201617x == 15
// replace income20x = 4 if V201617x == 16
// replace income20x = 5 if V201617x == 17
// replace income20x = 5 if V201617x == 18
// replace income20x = 5 if V201617x == 19
// replace income20x = 5 if V201617x == 20
// replace income20x = 5 if V201617x == 21
// replace income20x = 6 if V201617x == 22
// label var income20x "Income"
// label define income20x 1 "<$9,999" 2 "$10,000-$29,999" 3 "$30,000-$59,999" 4 "$60,000-$99,999" 5  "$100,000-$249,999" 6 "$250,000 or more"
// label values income20x
// label values income20x income20x
// recast double income20x
//
// gen income2001 = (income20x-1)/5
// label var income2001 "Income"
// recast double income2001
//
// // Symbolic Ideology (7 pt. scale): "99. Haven't thought much about this" coded as 4
// gen ideology20x = V201200
// replace ideology20x = . if V201200 == -9
// replace ideology20x = . if V201200 == -8
// replace ideology20x = 4 if V201200 == 99
// label var ideology20x "Ideology"
// label define ideology20x 1 "Extremely liberal" 2 "Liberal" 3 "Slightly liberal" 4 "Moderate" 5 "Slightly conservative" 6 "Conservative" 7 "Extremely conservative"
// label values ideology20x ideology20x
// recast double ideology20x
//
// gen ideology2001 = (ideology20x-1)/6
// label var ideology2001 "Ideology"
// recast double ideology2001
//
// // Ideological strength: "99. Haven't thought much about this" coded as 1
// gen ideostrength20x = ideology20x
// replace ideostrength20x = 4 if ideology20x == 1
// replace ideostrength20x = 3 if ideology20x == 2
// replace ideostrength20x = 2 if ideology20x == 3
// replace ideostrength20x = 1 if ideology20x == 4
// replace ideostrength20x = 2 if ideology20x == 5
// replace ideostrength20x = 3 if ideology20x == 6
// replace ideostrength20x = 4 if ideology20x == 7
// label var ideostrength20x "Ideological Strength"
// label define ideostrength20x 1 "Moderate" 2 "Slightly liberal/conservative" 3 "Liberal/conservative" 4 "Extremely liberal/conservative" 
// label values ideostrength20x ideostrength20x
// recast double ideostrength20x
//
// gen ideostrength2001 = (ideostrength20x-1)/3
// label var ideostrength2001 "Ideological Strength"
// recast double ideostrength2001
//
// // Party ID (7 pt. scale) 
// gen pid720x = V201231x
// replace pid720x = . if V201231x == -9
// replace pid720x = . if V201231x == -8
// label var pid720x "Party ID"
// label define pid720x 1 "Strong Democrat" 2 "Not very strong Democrat" 3 "Lean Democrat" 4 "Independent" 5 "Lean Republican" 6 "Not very strong Republican" 7 "Strong Republican"
// label values pid720x pid720x
// recast double pid720x
//
// gen pid72001 = (pid720x-1)/6
// label var pid72001 "Party ID"
// recast double pid72001
//
// // Party ID Strength
// gen pidstrength20x = pid720x
// replace pidstrength20x = 4 if pid720x == 1
// replace pidstrength20x = 3 if pid720x == 2
// replace pidstrength20x = 2 if pid720x == 3
// replace pidstrength20x = 1 if pid720x == 4
// replace pidstrength20x = 2 if pid720x == 5
// replace pidstrength20x = 3 if pid720x == 6
// replace pidstrength20x = 4 if pid720x == 7
// label var pidstrength20x "Party ID Strength"
// label define pidstrength20x 1 "Independent" 2 "Lean" 3 "Not very strong" 4 "Strong"
// label values pidstrength20x pidstrength20x
// recast double pidstrength20x
//
// gen pidstrength2001 = (pidstrength20x-1)/3
// label var pidstrength2001 "Party ID Strength"
// recast double pidstrength2001
//
// // NVP: Attend online
// gen onlineattend20 = V202013
// replace onlineattend20 = . if V202013 == -7
// replace onlineattend20 = . if V202013 == -6
// recode onlineattend20 (2=0)
// label var onlineattend20 "Online Attend"
// label define onlineattend20 0 "No" 1 "Yes"
// label values onlineattend20
// label values onlineattend20 onlineattend20
// recast double onlineattend20
//
// // NVP: Attend 
// gen attend20 = V202014
// replace attend20 = . if V202014 == -9
// replace attend20 = . if V202014 == -7
// replace attend20 = . if V202014 == -6
// recode attend20 (2=0)
// label var attend20 "Attend"
// label define attend20 0 "No" 1 "Yes"
// label values attend20
// label values attend20 attend20
// recast double attend20
//
// // NVP: Wear
// gen wear20 = V202015
// replace wear20 = . if V202015 == -9
// replace wear20 = . if V202015 == -7
// replace wear20 = . if V202015 == -6
// recode wear20 (2=0)
// label var wear20 "Wear"
// label define wear20 0 "No" 1 "Yes"
// label values wear20
// label values wear20 wear20
// recast double wear20
//
// // NVP: Work
// gen work20 = V202016
// replace work20 = . if V202016 == -7
// replace work20 = . if V202016 == -6
// recode work20 (2=0)
// label var work20 "Work"
// label define work20 0 "No" 1 "Yes"
// label values work20
// label values work20 work20
// recast double work20
//
// // NVP: Donate to Candidate
// gen moneycand20 = V202017
// replace moneycand20 = . if V202017 == -7
// replace moneycand20 = . if V202017 == -6
// recode moneycand20 (2=0)
// label var moneycand20 "Donate to Candidate"
// label define moneycand20 0 "No" 1 "Yes"
// label values moneycand20 moneycand20
// recast double moneycand20
//
// // NVP: Donate to Party
// gen moneyparty20 = V202019
// replace moneyparty20 = . if V202019 == -9
// replace moneyparty20 = . if V202019 == -8
// replace moneyparty20 = . if V202019 == -7
// replace moneyparty20 = . if V202019 == -6
// recode moneyparty20 (2=0)
// label var moneyparty20 "Donate to Party"
// label define moneyparty20 0 "No" 1 "Yes"
// label values moneyparty20 moneyparty20
// recast double moneyparty20
//
// // NVP: Donate to Group
// gen moneyoth20 = V202021
// replace moneyoth20 = . if V202021 == -9
// replace moneyoth20 = . if V202021 == -8
// replace moneyoth20 = . if V202021 == -7
// replace moneyoth20 = . if V202021 == -6
// recode moneyoth20 (2=0)
// label var moneyoth20 "Donate to Group"
// label define moneyoth20 0 "No" 1 "Yes"
// label values moneyoth20 moneyoth20
// recast double moneyoth20
//
// // NVP: Protest 
// gen protest20 = V202025
// replace protest20 = . if V202025 == -9
// replace protest20 = . if V202025 == -7
// replace protest20 = . if V202025 == -6
// recode protest20 (2=0)
// label var protest20 "Protest"
// label define protest20 0 "No" 1 "Yes"
// label values protest20 protest20
// recast double protest20
//
// // NVP: Petition
// gen petition20 = V202026
// replace petition20 = . if V202026 == -9
// replace petition20 = . if V202026 == -7
// replace petition20 = . if V202026 == -6
// recode petition20 (2=0)
// label var petition20 "Petition"
// label define petition20 0 "No" 1 "Yes"
// label values petition20 petition20
// recast double petition20
//
// // NVP: Comment
// gen comment20 = V202029
// replace comment20 = . if V202029 == -9
// replace comment20 = . if V202029 == -8
// replace comment20 = . if V202029 == -7
// replace comment20 = . if V202029 == -6
// recode comment20 (2=0)
// label var comment20 "Online Comment"
// label define comment20 0 "No" 1 "Yes"
// label values comment20 comment20
// recast double comment20
//
// // NVP: Contact
// gen contact20 = V202030
// replace contact20 = . if V202030 == -9
// replace contact20 = . if V202030 == -8
// replace contact20 = . if V202030 == -7
// replace contact20 = . if V202030 == -6
// recode contact20 (2=0)
// label var contact20 "Contact"
// label define contact20 0 "No" 1 "Yes"
// label values contact20 contact20
// recast double contact20
//
// // NVP: Talk
// gen talk20 = V202009
// replace talk20 = . if V202009 == -9
// replace talk20 = . if V202009 == -7
// replace talk20 = . if V202009 == -6
// recode talk20 (2=0)
// label var talk20 "Talk"
// label define talk20 0 "No" 1 "Yes"
// label values talk20
// label values talk20 talk20
// recast double talk20
//
// // NVP index
// sumscale, f1(onlineattend20 attend20 wear20 work20 moneycand20 moneyparty20 moneyoth20 protest20 petition20 comment20 contact20 talk20) fdummy
// rename Factor1_dsum nvp1220x
// label var nvp1220x "NVP"
// recast double nvp1220x
//
// gen nvp122001 = (nvp1220x)/12
// label var nvp122001 "NVP" 
// recast double nvp122001
//
// // Any NVP
// gen anynvp1220 = nvp1220x 
// replace anynvp1220 = 0 if nvp1220x == 0
// replace anynvp1220 = 1 if nvp1220x == 1 
// replace anynvp1220 = 1 if nvp1220x == 2
// replace anynvp1220 = 1 if nvp1220x == 3
// replace anynvp1220 = 1 if nvp1220x == 4
// replace anynvp1220 = 1 if nvp1220x == 5
// replace anynvp1220 = 1 if nvp1220x == 6
// replace anynvp1220 = 1 if nvp1220x == 7
// replace anynvp1220 = 1 if nvp1220x == 8
// replace anynvp1220 = 1 if nvp1220x == 9
// replace anynvp1220 = 1 if nvp1220x == 10
// replace anynvp1220 = 1 if nvp1220x == 11
// replace anynvp1220 = 1 if nvp1220x == 12
// label var anynvp1220 "Any NVP (12)"
// recast double anynvp1220 
//
// // Recruitment: Party contact (combines responses to split sample questions V202004 and V202005
// gen partycontact20 = V202005
// replace partycontact20 = . if V202005 == -9
// replace partycontact20 = . if V202005 == -8
// replace partycontact20 = . if V202005 == -8
// replace partycontact20 = . if V202005 == -7
// replace partycontact20 = . if V202005 == -6
// replace partycontact20 = . if V202005 == -1
// recode partycontact20 (2=0)
// replace partycontact20 = 1 if V202004 == 1
// replace partycontact20 = 0 if V202004 == 2
// label var partycontact20 "Party Contact"
// label define partycontact20 0 "No" 1 "Yes"
// label values partycontact20 partycontact20
// recast double partycontact20
//
// // Recruitment: Support
// gen support20 = V202007
// replace support20 = . if V202007 == -9
// replace support20 = . if V202007 == -8
// replace support20 = . if V202007 == -7
// replace support20 = . if V202007 == -6
// recode support20 (2=0)
// label var support20 "Other Contact"
// label define support20 0 "No" 1 "Yes"
// label values support20 support20
// recast double support20
//
// // Recruitment: Register
// gen register20 = V202008
// replace register20 = . if V202008 == -8
// replace register20 = . if V202008 == -7
// replace register20 = . if V202008 == -6
// recode register20 (2=0)
// label var register20 "Talk About Registering/Voting"
// label define register20 0 "No" 1 "Yes"
// label values register20 register20
// recast double register20
//
// // Recruitment  
// sumscale, f1(partycontact20 support20 register20) fdummy
// rename Factor1_dsum recruit20x
// label var recruit20x "Recruited"
// recast double recruit20x
//
// gen recruit2001 = (recruit20x)/3
// label var recruit2001 "Recruited"
// recast double recruit2001 
//
// // Finances
// gen finances20x = V201503
// replace finances20x = . if V201503 == -9
// replace finances20x = . if V201503 == -8
// label var finances20x "Finances"
// label define finances20x 1 "1 Much better off" 2 "2 Somewhat better off" 3 "3 About the same" 4 "4 Somewhat worse off" 5 "5 Much worse off"
// label values finances20x finances20x
// recast double finances20x
//
// gen finances2001 = (finances20x-1)/4
// label var finances2001 "Finances"
// recast double finances2001
//
// // Issues: Government Assistance
// gen govassist20x = V201258
// replace govassist20x = . if V201258 == -9
// replace govassist20x = . if V201258 == -8
// replace govassist20x = 4 if V201258 == 99
// label var govassist20x "7pt scale gov assistance to blacks scale: self-placement"
// label define govassist20x 1 "Government should help blacks" 7 "Blacks should help themselves"
// label values govassist20x govassist20x
// recast double govassist20x
//
// gen govassist2001 = (govassist20x-1)/6
// label var govassist2001 "7pt scale gov assistance to blacks scale: self-placement"
// recast double govassist2001
//
// // Issues: Gov/Private Medical
// gen privatemed20x = V201252
// replace privatemed20x = . if V201252 == -9
// replace privatemed20x = . if V201252 == -8
// replace privatemed20x = 4 if V201252 == 99
// label var privatemed20x "7pt scale gov-private medical insurance scale: self-placement"
// label define privatemed20x 1 "Government insurance plan" 7 "rivate insurance plan"
// label values privatemed20x privatemed20x
// recast double privatemed20x
//
// gen privatemed2001 = (privatemed20x-1)/6
// label var privatemed2001 "7pt scale gov-private medical insurance scale: self-placement"
// recast double privatemed2001
//
// // Issues: Job-Income
// gen jobincome20x = V201255
// replace jobincome20x = . if V201255 == -9
// replace jobincome20x = . if V201255 == -8
// replace jobincome20x = 4 if V201255 == 99
// label var jobincome20x "7pt scale guaranteed job-income scale: self-placement"
// label define jobincome20x 1 "Government should see to jobs and standards of living" 7 "Government should let each person get ahead on their own"
// label values jobincome20x jobincome20x
// recast double jobincome20x
//
// gen jobincome2001 = (jobincome20x-1)/6
// label var jobincome2001 "7pt scale guaranteed job-income scale: self-placement"
// recast double jobincome2001
//
// // Issues: Services (reverse coded)
// gen services20x = V201246
// replace services20x = . if V201246 == -9
// replace services20x = . if V201246 == -8
// replace services20x = 4 if V201246 == 99
// recode services20x (1=7) (2=6) (3=5) (4=4) (5=3) (6=2) (7=1)
// label var services20x "7pt scale spending & services: self-placement"
// label define services20x 1 "Government should provide many more services" 7 "Government should provide many fewer services"
// label values services20x services20x
// recast double services20x
//
// gen services2001 = (services20x-1)/6
// label var services2001 "7pt scale spending & services: self-placement"
// recast double services2001
//
// // Issues: Tradeoff
// gen tradeoff20x = V201262
// replace tradeoff20x = . if V201262 == -9
// replace tradeoff20x = . if V201262 == -8
// replace tradeoff20x = 4 if V201262 == 99
// label var tradeoff20x "7pt scale environment-business tradeoff"
// label define tradeoff20x 1 "Tougher regulations on business needed to protect environment" 7 "Regulations to protect environment already too much of a burden on business"
// label values tradeoff20x tradeoff20x
// recast double tradeoff20x
//
// gen tradeoff2001 = (tradeoff20x-1)/6
// label var tradeoff2001 "7pt scale environment-business tradeoff"
// recast double tradeoff2001
//
// // Issues: Wall (reverse coded)
// gen wall20x = V201426x
// replace wall20x = . if V201426x == -2
// recode wall20x (1=7) (2=6) (3=5) (4=4) (5=3) (6=2) (7=1)
// label var wall20x "Favor or oppose building a wall on border with Mexico"
// label define wall20x 1 "Oppose a great deal" 2 "Oppose a moderate amount" 3 "Oppose a little" 4 "Neither favor nor oppose" 5 "Favor a little" 6 "Favor a moderate amount" 7 "Favor a great deal"
// label values wall20x wall20x
// recast double wall20x
//
// gen wall2001 = (wall20x-1)/6
// label var wall2001 "Favor or oppose building a wall on border with Mexico"
// recast double wall2001
//
// // Issues: Defense
// gen defense20x = V201249
// replace defense20x = . if V201249 == -9
// replace defense20x = . if V201249 == -8
// replace defense20x = 4 if V201249 == 99
// label var defense20x "7pt scale defense spending: self-placement"
// label define defense20x 1 "Greatly decrease defense spending" 7 "Greatly increase defense spending"
// label values defense20x defense20x 
// recast double defense20x 
//
// gen defense2001 = (defense20x-1)/6
// label var defense2001 "7pt scale defense spending: self-placement"
// recast double defense2001
//
// alpha govassist2001 privatemed2001 jobincome2001 services2001 tradeoff2001 wall2001 defense2001, item
// factor govassist2001 privatemed2001 jobincome2001 services2001 tradeoff2001 wall2001 defense2001, ipf 
//
// // Issues Scale 
// sumscale, f1(govassist20x privatemed20x jobincome20x services20x tradeoff20x wall20x defense20x)
// rename Factor1_average issues20x
// label var issues20x "Issues"
// recast double issues20x
//
// // Issues Scale
// sumscale, f1(govassist2001 privatemed2001 jobincome2001 services2001 tradeoff2001 wall2001 defense2001)
// rename Factor1_average issues2001
// label var issues2001 "Issues"
// recast double issues2001
//
// // Issues: Binned
// egen issues20cat=cut(issues2001), group(3) 
// label define issues20cat 0 "Liberal" 1 "Moderate" 2 "Conservative"
// label values issues20cat issues20cat
// recast double issues20cat
//
// // Trust government (reverse coded)
// gen trustgovt20x = V201233
// replace trustgovt20x = . if V201233 == -9
// replace trustgovt20x = . if V201233 == -8
// recode trustgovt20x (1=5) (2=4) (3=3) (4=2) (5=1)
// label var trustgovt20x "Trust Government"
// label define trustgovt20x 1 "Never" 2 "Some of the time" 3 "About half the time" 4 "Most of the time" 5 "Always"
// label values trustgovt20x trustgovt20x
// recast double trustgovt20x
//
// gen trustgovt2001 = (trustgovt20x-1)/4
// label var trustgovt2001 "Trust Government"
// recast double trustgovt2001
//
// // Trust people (reverse coded)
// gen trustpeople20x = V201237
// replace trustpeople20x = . if V201237 == -9
// replace trustpeople20x = . if V201237 == -8
// recode trustpeople20x (1=5) (2=4) (3=3) (4=2) (5=1)
// label var trustpeople20x ///
// "Trust People"
// label define trustpeople20x ///
// 1 "1 Never" 2 "2 Some of the time" 3 "3 About half the time" 4 "4 Most of the time" 5 "5 Always"
// label values trustpeople20x trustpeople20x
// recast double trustpeople20x
//
// gen trustpeople2001 = (trustpeople20x-1)/4
// label var trustpeople2001 "Trust People"
// recast double trustpeople2001
//
// // Trust election officials (reverse coded)
// gen trustofficials20x = V201352
// replace trustofficials20x = . if V201352 == -9
// replace trustofficials20x = . if V201352 == -8
// label var trustofficials20x "Trust Election Officials"
// label define trustofficials20x 1 "Never" 2 "Some of the time" 3 "About half the time" 4 "Most of the time" 5 "Always"
// label values trustofficials20x trustofficials20x
// recast double trustofficials20x
//
// gen trustofficials2001 = (trustofficials20x-1)/4
// label var trustofficials2001 "Trust Election Officials"
// recast double trustofficials2001
//
// *Votes counted accurately
// gen votecount20x = V201351
// replace votecount20x = . if V201351 == -9
// replace votecount20x = . if V201351 == -8
// label var votecount20x "Votes counted accurately"
// label define votecount20x 1 "Not at all" 2 "A little" 3 "Moderately" 4 "Very" 5 "Completely"
// label values votecount20x votecount20x
// recast double votecount20x
//
// gen votecount2001 = (votecount20x-1)/4
// label var votecount2001 "Votes counted accurately"
// recast double votecount2001
//
// // Trust in elections
// sumscale, f1(trustofficials20x votecount20x)
// rename Factor1_average electtrust20x
// label var electtrust20x "Election Trust"
// recast double electtrust20x 
//
// sumscale, f1(trustofficials2001 votecount2001)
// rename Factor1_average electtrust2001
// label var electtrust2001 "Election Trust"
// recast double electtrust2001 
//
// // Interest (reverse coded)
// gen interest20x = V201006
// replace interest20x = . if V201006 == -9
// recode interest20x (1=3) (3=1) 
// label var interest20x "Interest" 
// label define interest20x 1 "Not much interested" 2 "Somewhat interested" 3 "Very much interested" 
// label values interest20x interest20x
// recast double interest20x
//
// gen interest2001 = (interest20x-1)/2
// label var interest2001 "Interest" 
// recast double interest2001
//
// // Efficacy: Officials (reverse coded)
// gen officials20x = V202212 
// replace officials20x = . if V202212 == -9
// replace officials20x = . if V202212 == -7
// replace officials20x = . if V202212 == -6
// replace officials20x = . if V202212 == -5
// replace officials20x = . if V202212 == -4
// recode officials20x (1=5) (2=4) (4=2) (5=1)
// label var officials20x "Public officials don't care what people think"
// label define officials20x 1 "Disagree strongly" 2 "Disagree somewhat" 3 "Neither agree nor disagree" 4 "Agree somewhat" 5 "Agree strongly"
// label values officials20x officials20x
// recast double officials20x
//
// gen officials2001 = (officials20x-1)/4
// label var officials2001 "Public officials don't care what people think"
// recast double officials2001 
//
// // Efficacy: No say (reverse coded)
// gen nosay20x = V202213
// replace nosay20x = . if V202213 == -9
// replace nosay20x = . if V202213 == -7
// replace nosay20x = . if V202213 == -6
// replace nosay20x = . if V202213 == -5
// recode nosay20x (1=5) (2=4) (4=2) (5=1)
// label var nosay20x "Have no say about what government does"
// label define nosay20x 1 "Disagree strongly" 2 "Disagree somewhat" 3 "Neither agree nor disagree" 4 "Agree somewhat" 5 "Agree strongly"
// label values nosay20x nosay20x
// recast double nosay20x
//
// gen nosay2001 = (nosay20x-1)/4
// label var nosay2001 "Have no say about what government does"
// recast double nosay2001 
//
// // Efficacy
// sumscale, f1(officials2001 nosay2001)
// rename Factor1_average efficacy2001
// label var efficacy2001 "Efficacy"
// recast double efficacy2001
//
// // Anger
// gen anger20x = V201118
// replace anger20x = . if V201118 == -9
// replace anger20x = . if V201118 == -8
// label var anger20x "Angry"
// label define anger20x 1 "Not at all" 2 "A little" 3 "Somewhat" 4 "Very" 5 "Extremely"
// label values anger20x anger20x
// recast double anger20x
//
// gen anger2001 = (anger20x-1)/4
// label var anger2001 "Angry"
// recast double anger2001
//
// // Trump feeling thermometer
// gen trumptherm20x = V201152
// replace trumptherm20x = . if V201152 == -9
// label var trumptherm20x "Trump Feeling Thermometer"
// recast double trumptherm20x 
//
// gen trumptherm2001 = (trumptherm20x)/100
// label var trumptherm2001 "Trump Feeling Thermometer"
// recast double trumptherm2001 

********************************************************************************
************************************ Table 1 ***********************************
********************************************************************************

svyset [pweight=V240107a], strata(V240107d) psu(V240107c)

// Model 1
svy: poisson nvp122401 issues2401 electtrust2401 trustgovt2401 trustpeople2401  pidstrength2401 ideostrength2401 interest2401 education2401 income2401 religious2401 age2401 sex24 race24 ethnicity24 recruit2401 efficacy2401 anger2401 finances2401

// Model 2
svy: poisson nvp122401 c.issues2401##c.electtrust2401 trustgovt2401 trustpeople2401  pidstrength2401 ideostrength2401 interest2401 education2401 income2401 religious2401 age2401 sex24 race24 ethnicity24 recruit2401 efficacy2401 anger2401 finances2401

// Model 3 (uses the binned measure of issues and the 0-12 measure of NVP for clearer predicted counts)
svy: poisson nvp1224x c.issues24cat##c.electtrust2401 trustgovt2401 trustpeople2401  pidstrength2401 ideostrength2401 interest2401 education2401 income2401 religious2401 age2401 sex24 race24 ethnicity24 recruit2401 efficacy2401 anger2401 finances2401

// Calculate predicted counts of NVP and Figure 3
margins, dydx(electtrust2401) at(issues24cat=(0 1 2))
margins, at(electtrust2401=(0 .125 .25 .375 .5 .625 .75 .875 1) issues24cat=(0 1 2)) 
marginsplot, legend(col(1) pos(3) size(vsmall) region(lstyle(none)))

********************************************************************************
*********************************** Figure 4 ***********************************
********************************************************************************

svyset [pweight=V240107a], strata(V240107d) psu(V240107c)

// Run comprehensive model with all covariates to obtain analytic sample
regress issues2401 issues2001 electtrust2001 nvp122001 electtrust2401 nvp122401 trustgovt2401 trustpeople2401 pidstrength2401 ideostrength2401 education2401 income2401 religious2401 age2401 sex24 race24 ethnicity24 recruit2401 interest2401 efficacy2401 anger2401 finances2401 if _merge == 3

// SEM Model (corresponds with Figure 4)
svy: sem ///
(issues2401 <- issues2001 electtrust2001 nvp122001 trustgovt2401 trustpeople2401 pidstrength2401 ideostrength2401 education2401 income2401 religious2401 age2401 sex24 race24 ethnicity24 recruit2401 interest2401 efficacy2401 anger2401 finances2401) ///
(electtrust2401  <- electtrust2001 issues2001 nvp122001 trustgovt2401 trustpeople2401 pidstrength2401 ideostrength2401 education2401 income2401 religious2401 age2401 sex24 race24 ethnicity24 recruit2401 interest2401 efficacy2401 anger2401 finances2401) ///
(nvp122401 <- nvp122001 issues2001 electtrust2001 trustgovt2401 trustpeople2401 pidstrength2401 ideostrength2401 education2401 income2401 religious2401 age2401 sex24 race24 ethnicity24 recruit2401 interest2401 efficacy2401 anger2401 finances2401) if e(sample), cov(e.issues2401*e.electtrust2401 e.issues2401*e.nvp122401 e.electtrust2401*e.nvp122401) 

// Individual OLS models to create coefficient plot (Figure 4)
svy: regress issues2401 issues2001 electtrust2001 nvp122001 trustgovt2401 trustpeople2401 pidstrength2401 ideostrength2401 education2401 income2401 religious2401 age2401 sex24 race24 ethnicity24 recruit2401 interest2401 efficacy2401 anger2401 finances2401 if _merge == 3 
outreg2 using poqrep, excel replace dec(2) sideway alpha(0.001, 0.01, 0.05) 
estimates store cl1

svy: regress electtrust2401 issues2001 electtrust2001 nvp122001 trustgovt2401 trustpeople2401 pidstrength2401 ideostrength2401 education2401 income2401 religious2401 age2401 sex24 race24 ethnicity24 recruit2401 interest2401 efficacy2401 anger2401 finances2401 if _merge == 3 
outreg2 using poqrep, excel append dec(2) sideway alpha(0.001, 0.01, 0.05) 
estimates store cl2

svy: regress nvp122401 issues2001 electtrust2001 nvp122001 trustgovt2401 trustpeople2401 pidstrength2401 ideostrength2401 education2401 income2401 religious2401 age2401 sex24 race24 ethnicity24 recruit2401 interest2401 efficacy2401 anger2401 finances2401 if _merge == 3
outreg2 using poqrep, excel append dec(2) sideway alpha(0.001, 0.01, 0.05) 
estimates store cl3

coefplot cl1 cl2 cl3, msize(small) keep(issues2001 electtrust2001 nvp122001) order(issues2001 electtrust2001 nvp122001) legend(col(1) pos(3) size(vsmall) region(lstyle(none)))
 
********************************************************************************
********************************** Appendix A **********************************
********************************************************************************

// To replicate results from Fitz and Saunders (2024), download data and do files for "Distrusting the Process: Electoral Trust, Operational Ideology, and Non-Voting Political Participation in the 2020 American Electorate," published in: Public Opinion Quarterly 88(SI), 2024, pages 843 – 857, https:doi.org/10.1093/poq/nfae025. These materials can also be found at the Harvard Dataverse: https://doi.org/10.7910/DVN/BVIMHX. 

svyset [pweight=V200010b], strata(V200010d) psu(V200010c)

svy: poisson nvp issues trustelection trustpeople trust pidstrength ideostrength interest education income religious age sex race ethnicity recruit efficacy anger finances 

svy: poisson nvp c.trustelection##c.issues trust trustpeople ideostrength interest pidstrength education income religious age sex race ethnicity recruit efficacy anger finances 

svy: poisson nvpx c.trustelection##c.issuescat trust trustpeople ideostrength interest pidstrength education income religious age sex race ethnicity recruit efficacy anger finances 

margins, dydx(trustelection) at(issuescat=(0 1 2))

margins, at(trustelection=(0(.125)1) issuescat=(0 1 2))
marginsplot

********************************************************************************
********************************** Appendix B **********************************
********************************************************************************

// Question Wording and Coding

********************************************************************************
********************************** Appendix C **********************************
********************************************************************************

// To replicate results from Fitz and Saunders (2024), download data and do files for "Distrusting the Process: Electoral Trust, Operational Ideology, and Non-Voting Political Participation in the 2020 American Electorate," published in: Public Opinion Quarterly 88(SI), 2024, pages 843 – 857, https:doi.org/10.1093/poq/nfae025. These materials can also be found at the Harvard Dataverse: https://doi.org/10.7910/DVN/BVIMHX. 

svyset [pweight=V200010b], strata(V200010d) psu(V200010c)

// C1: All 2020 ANES Respondents
tab talk 
tab comment 
tab petition 
tab moneycand 
tab wear 
tab contact 
tab onlineattend 
tab moneyparty 
tab protest 
tab moneyoth 
tab attend 
tab work 
tab anynvp 
summarize anynvp 

// C1: Fitz and Saunders (2024) Analytic Sample

// Run model to obtain analytic sample 
svy: poisson nvpx c.trustelection##c.issuescat trust trustpeople ideostrength interest pidstrength education income religious age sex race ethnicity recruit efficacy anger finances 

tab talk if e(sample) 
tab comment if e(sample) 
tab petition if e(sample) 
tab moneycand if e(sample) 
tab wear if e(sample) 
tab contact if e(sample) 
tab onlineattend if e(sample) 
tab moneyparty if e(sample)
tab protest if e(sample)
tab moneyoth if e(sample) 
tab attend if e(sample) 
tab work if e(sample) 
tab anynvp if e(sample) 

// C2: 2020 ANES All Respondents (NVP)
factor onlineattend attend wear work moneycand moneyparty moneyoth protest petition comment contact talk, ipf
alpha onlineattend attend wear work moneycand moneyparty moneyoth protest petition comment contact talk, item

// C2: 2020 ANES All Respondents (Trust)
factor trust trustpeople votecount trustofficials, ipf
alpha trust trustpeople votecount trustofficials, item

factor votecount trustofficials, ipf
alpha votecount trustofficials, item

// C2: 2020 ANES All Respondents (Issues)
factor govassist privatemed jobincome services tradeoff wall defense, ipf 
alpha govassist privatemed jobincome services tradeoff wall defense, item

// C2: 2020 ANES Fitz and Saunders (2024) Analytic Sample

// Run model to obtain analytic sample
svy: poisson nvpx c.trustelection##c.issuescat trust trustpeople ideostrength interest pidstrength education income religious age sex race ethnicity recruit efficacy anger finances 

// C2: 2020 ANES Fitz and Saunders (2024) Analytic Sample (NVP)
factor onlineattend attend wear work moneycand moneyparty moneyoth protest petition comment contact talk if e(sample), ipf
alpha onlineattend attend wear work moneycand moneyparty moneyoth protest petition comment contact talk if e(sample), item

// C2: 2020 ANES Fitz and Saunders (2024) Analytic Sample (Trust)
factor trust trustpeople votecount trustofficials if e(sample), ipf
alpha trust trustpeople votecount trustofficials if e(sample), item

factor votecount trustofficials if e(sample), ipf
alpha votecount trustofficials if e(sample), item

// C2: 2020 ANES Fitz and Saunders (2024) Analytic Sample (Issues)
factor govassist privatemed jobincome services tradeoff wall defense if e(sample), ipf 
alpha govassist privatemed jobincome services tradeoff wall defense if e(sample), item

// To replicate Fitz and Saunders (2026), use data file "Fitz and Saunders 2026.dta"

svyset [pweight=V240107a], strata(V240107d) psu(V240107c)

// Run model to obtain analytic sample 
svy: poisson nvp1224x c.issues24cat##c.electtrust2401 pidstrength2401 ideostrength2401 interest2401 education2401 income2401 religious2401 age2401 sex24 race24 ethnicity24 recruit2401 efficacy2401 trustgovt2401 trustpeople2401 anger2401 finances2401

// C1: 2024 ANES Replication Sample 
tab talk24 if e(sample)
tab comment24 if e(sample)
tab petition24 if e(sample)
tab moneycand24 if e(sample)
tab wear24 if e(sample)
tab contact24 if e(sample) 
tab onlineattend24 if e(sample)
tab moneyparty24 if e(sample)
tab protest24 if e(sample)
tab moneyoth24 if e(sample) 
tab attend24 if e(sample)
tab work24 if e(sample)
tab anynvp1224 if e(sample)

// C2: 2020 ANES Replication Analytic Sample (NVP)
factor onlineattend24 attend24 wear24 work24 moneycand24 moneyparty24 moneyoth24 protest24 petition24 comment24 contact24 talk24 if e(sample), ipf 
alpha onlineattend24 attend24 wear24 work24 moneycand24 moneyparty24 moneyoth24 protest24 petition24 comment24 contact24 talk24 if e(sample), item 

// C2: 2020 ANES Replication Analytic Sample (Trust)
factor trustgovt2401 trustpeople2401 trustofficials2401 votecount2401 if e(sample), ipf 
alpha trustgovt2401 trustpeople2401 trustofficials2401 votecount2401 if e(sample), item

factor trustofficials2401 votecount2401 if e(sample), ipf 
alpha trustofficials2401 votecount2401 if e(sample), item

// C2: 2020 ANES Replication Analytic Sample (Issues)
factor govassist2401 privatemed2401 jobincome2401 services2401 tradeoff2401 wall2401 defense2401 if e(sample), ipf 
alpha govassist2401 privatemed2401 jobincome2401 services2401 tradeoff2401 wall2401 defense2401 if e(sample), item 

********************************************************************************
********************************** Appendix D **********************************
********************************************************************************

// To replicate results from Fitz and Saunders (2024), download data and do files for "Distrusting the Process: Electoral Trust, Operational Ideology, and Non-Voting Political Participation in the 2020 American Electorate," published in: Public Opinion Quarterly 88(SI), 2024, pages 843 – 857, https:doi.org/10.1093/poq/nfae025. These materials can also be found at the Harvard Dataverse: https://doi.org/10.7910/DVN/BVIMHX. 

svyset [pweight=V200010b], strata(V200010d) psu(V200010c)

// Run model to obtain analytic sample 
svy: poisson anynvp nvp issues trustelection trustpeople ideostrength interest pidstrength education income religious age sex race ethnicity recruit efficacy anger finances

// 2020 Full Sample 
summarize anynvp nvp issues trustelection trustpeople ideostrength interest pidstrength education income religious age sex race ethnicity recruit efficacy anger finances if e(sample)

// Run model to obtain analytic sample 
svy: regress nvp122401 issues2001 electtrust2001 nvp122001 issues2401 electtrust2401 pidstrength2401 ideostrength2401 education2401 income2401 religious2401 age2401 sex24 race24 ethnicity24 recruit2401 interest2401 efficacy2401 trustgovt2401 trustpeople2401 anger2401 finances2401 if _merge == 3

// 2020 Panel Sample
summarize anynvp1220 nvp112001 issues2001 electtrust2001 trustgovt2001 trustpeople2001 pidstrength2001 ideostrength2001 interest2001 education2001 income2001 religious2001 age2001 sex20 race20 ethnicity20 recruit2001 efficacy2001 anger2001 finances2001 if e(sample) 

// To replicate Fitz and Saunders (2026), use data file "Fitz and Saunders 2026.dta"

svyset [pweight=V240107a], strata(V240107d) psu(V240107c)

// Run model to obtain analytic sample 
svy: poisson nvp122401 issues2401 electtrust2401 trustgovt2401 trustpeople2401  pidstrength2401 ideostrength2401 interest2401 education2401 income2401 religious2401 age2401 sex24 race24 ethnicity24 recruit2401 efficacy2401 anger2401 finances2401

// 2024 Full Sample 
summarize anynvp1224 nvp122401 issues2401 electtrust2401 trustgovt2401 trustpeople2401  pidstrength2401 ideostrength2401 interest2401 education2401 income2401 religious2401 age2401 sex24 race24 ethnicity24 recruit2401 efficacy2401 anger2401 finances2401 if e(sample)

// Run model to obtain analytic sample 
svy: regress nvp122401 issues2001 electtrust2001 nvp122001 issues2401 electtrust2401 pidstrength2401 ideostrength2401 education2401 income2401 religious2401 age2401 sex24 race24 ethnicity24 recruit2401 interest2401 efficacy2401 trustgovt2401 trustpeople2401 anger2401 finances2401 if _merge == 3

// 2024 Panel Sample 
summarize anynvp1224 nvp122401 issues2401 electtrust2401 trustgovt2401 trustpeople2401  pidstrength2401 ideostrength2401 interest2401 education2401 income2401 religious2401 age2401 sex24 race24 ethnicity24 recruit2401 efficacy2401 anger2401 finances2401 if e(sample) & _merge == 3

********************************************************************************
********************************** Appendix E **********************************
********************************************************************************

// To replicate Fitz and Saunders (2026), use data file "Fitz and Saunders 2026.dta"

svyset [pweight=V240107a], strata(V240107d) psu(V240107c)

// Model 1
svy: poisson nvp122401 issues2401 electtrust2401 trustgovt2401 trustpeople2401  pidstrength2401 ideostrength2401 interest2401 education2401 income2401 religious2401 age2401 sex24 race24 ethnicity24 recruit2401 efficacy2401 anger2401 finances2401

// Model 2
svy: poisson nvp122401 c.issues2401##c.electtrust2401 trustgovt2401 trustpeople2401  pidstrength2401 ideostrength2401 interest2401 education2401 income2401 religious2401 age2401 sex24 race24 ethnicity24 recruit2401 efficacy2401 anger2401 finances2401

// Model 3 (uses the binned measure of issues and the 0-12 measure of NVP for clearer predicted counts)
svy: poisson nvp1224x c.issues24cat##c.electtrust2401 trustgovt2401 trustpeople2401  pidstrength2401 ideostrength2401 interest2401 education2401 income2401 religious2401 age2401 sex24 race24 ethnicity24 recruit2401 efficacy2401 anger2401 finances2401

********************************************************************************
********************************** Appendix F **********************************
********************************************************************************

// To replicate Fitz and Saunders (2026), use data file "Fitz and Saunders 2026.dta"

svyset [pweight=V240107a], strata(V240107d) psu(V240107c)

svy: sem ///
(issues2401 <- issues2001 electtrust2001 nvp122001 trustgovt2401 trustpeople2401 pidstrength2401 ideostrength2401 education2401 income2401 religious2401 age2401 sex24 race24 ethnicity24 recruit2401 interest2401 efficacy2401 anger2401 finances2401) ///
(electtrust2401  <- electtrust2001 issues2001 nvp122001 trustgovt2401 trustpeople2401 pidstrength2401 ideostrength2401 education2401 income2401 religious2401 age2401 sex24 race24 ethnicity24 recruit2401 interest2401 efficacy2401 anger2401 finances2401) ///
(nvp122401 <- nvp122001 issues2001 electtrust2001 trustgovt2401 trustpeople2401 pidstrength2401 ideostrength2401 education2401 income2401 religious2401 age2401 sex24 race24 ethnicity24 recruit2401 interest2401 efficacy2401 anger2401 finances2401) if e(sample), cov(e.issues2401*e.electtrust2401 e.issues2401*e.nvp122401 e.electtrust2401*e.nvp122401) 

********************************************************************************
********************************** Appendix G **********************************
********************************************************************************

// To replicate Fitz and Saunders (2026), use data file "Fitz and Saunders 2026.dta"

svy: sem ///
(issues2401 <- issues2001 electtrust2001 nvp122001 trustgovt2001 trustpeople2001 pidstrength2001 ideostrength2001 education2001 income2001 religious2001 age2001 sex20 race20 ethnicity20 recruit2001 interest2001 efficacy2001 anger2001 finances2001) ///
(electtrust2401  <- electtrust2001 issues2001 nvp122001 trustgovt2001 trustpeople2001 pidstrength2001 ideostrength2001 education2001 income2001 religious2001 age2001 sex20 race20 ethnicity20 recruit2001 interest2001 efficacy2001 anger2001 finances2001) ///
(nvp122401 <- nvp122001 issues2001 electtrust2001 trustgovt2001 trustpeople2001 pidstrength2001 ideostrength2001 education2001 income2001 religious2001 age2001 sex20 race20 ethnicity20 recruit2001 interest2001 efficacy2001 anger2001 finances2001) if e(sample), cov(e.issues2401*e.electtrust2401 e.issues2401*e.nvp122401 e.electtrust2401*e.nvp122401) 

********************************************************************************
********************************** Appendix H **********************************
********************************************************************************

// To replicate Fitz and Saunders (2026), use data file "Fitz and Saunders 2026.dta"

svy: sem ///
(issues2401 <- issues2001 electtrust2001 nvp122001) ///
(electtrust2401  <- electtrust2001 issues2001 nvp122001) ///
(nvp122401 <- nvp122001 issues2001 electtrust2001) if e(sample), cov(e.issues2401*e.electtrust2401 e.issues2401*e.nvp122401 e.electtrust2401*e.nvp122401) 

********************************************************************************
********************************** Appendix I **********************************
********************************************************************************

// To replicate Fitz and Saunders (2026), use data file "Fitz and Saunders 2026.dta"

// Model 1: Sub party ID 
svy: poisson nvp122401 pid72401 electtrust2401 trustgovt2401 trustpeople2401  pidstrength2401 ideostrength2401 interest2401 education2401 income2401 religious2401 age2401 sex24 race24 ethnicity24 recruit2401 efficacy2401 anger2401 finances2401
outreg2 using poqrep010826, excel replace dec(2) sideway alpha(0.001, 0.01, 0.05) 

// Model 2: Sub party ID 
svy: poisson nvp122401 c.pid72401##c.electtrust2401 trustgovt2401 trustpeople2401  pidstrength2401 ideostrength2401 interest2401 education2401 income2401 religious2401 age2401 sex24 race24 ethnicity24 recruit2401 efficacy2401 anger2401 finances2401
outreg2 using poqrep010826, excel append dec(2) sideway alpha(0.001, 0.01, 0.05) 

// Model 3: Sub symbolic ideology
svy: poisson nvp122401 ideology2401 electtrust2401 trustgovt2401 trustpeople2401  pidstrength2401 ideostrength2401 interest2401 education2401 income2401 religious2401 age2401 sex24 race24 ethnicity24 recruit2401 efficacy2401 anger2401 finances2401
outreg2 using poqrep010826, excel append dec(2) sideway alpha(0.001, 0.01, 0.05) 

// Model 4: Sub symbolic ideology
svy: poisson nvp122401 c.ideology2401##c.electtrust2401 trustgovt2401 trustpeople2401  pidstrength2401 ideostrength2401 interest2401 education2401 income2401 religious2401 age2401 sex24 race24 ethnicity24 recruit2401 efficacy2401 anger2401 finances2401
outreg2 using poqrep010826, excel append dec(2) sideway alpha(0.001, 0.01, 0.05) 

// Model 5: Sub Trump 
svy: poisson nvp122401 trumptherm2401 electtrust2401 trustgovt2401 trustpeople2401  pidstrength2401 ideostrength2401 interest2401 education2401 income2401 religious2401 age2401 sex24 race24 ethnicity24 recruit2401 efficacy2401 anger2401 finances2401
outreg2 using poqrep010826, excel append dec(2) sideway alpha(0.001, 0.01, 0.05) 

// Model 6: Sub Trump 
svy: poisson nvp122401 c.trumptherm2401##c.electtrust2401 trustgovt2401 trustpeople2401  pidstrength2401 ideostrength2401 interest2401 education2401 income2401 religious2401 age2401 sex24 race24 ethnicity24 recruit2401 efficacy2401 anger2401 finances2401
outreg2 using poqrep010826, excel append dec(2) sideway alpha(0.001, 0.01, 0.05) 

